Consulta de Guías Docentes



Academic Year/course: 2022/23

453 - Degree in Mathematics

27024 - Computer Science II


Syllabus Information

Academic Year:
2022/23
Subject:
27024 - Computer Science II
Faculty / School:
100 - Facultad de Ciencias
Degree:
453 - Degree in Mathematics
ECTS:
6.0
Year:
4
Semester:
First semester
Subject Type:
Optional
Module:
---

1. General information

1.1. Aims of the course

These approaches and objectives are aligned with the following Sustainable Development Goals (SDGs) of the United Nations 2030 Agenda (https://www.un.org/sustainabledevelopment/es/), in such a way that the acquisition of the learning outcomes of the module provides training and competence to contribute to some extent to their achievement: (4) Quality education, (5) Gender equality, (8) Decent work and economic growth, (9) Industry, innovation and infrastructure, (10) Reducing inequality, (17) Partnerships for the goals.

2. Learning goals

3. Assessment (1st and 2nd call)

4. Methodology, learning tasks, syllabus and resources

4.1. Methodological overview

The methodology followed in this course is oriented towards the achievement of the learning objectives. A wide range of teaching and learning tasks are implemented, such as lectures, problem-solving sessions and autonomous work and study.

4.2. Learning tasks

This course is organized as follows:

  • Lectures. Two weekly hours. The teacher will present the theoretical and technological concepts in lectures.
  • Problem-solving sessions. Two weekly hours. Problems will be solved individually and by groups. These sessions involve the use of computers.
  • Autonomous work and study.

The teaching activities and assessment tasks will take place in a face-to-face mode, except in the case that, due to the health situation, the dispositions emitted by the competent authorities and by the University of Zaragoza compel to take them to a greater or lesser extent in a telematic form.

4.3. Syllabus

  • Topic 1. The object-oriented paradigm (OOP). The Java Virtual Machine: compiling and executing programs.
  • Topic 2. Review of elements of structured programming in the Java language: predefined types; variables and constants; operators and expressions; usual mathematical functions (the Math class). Structured statements: sequential, conditional and iterative. Defining and invoking class methods. Method signatures: overloading methods.
  • Topic 3. Introducing OOP. Objects, classes and references (the null reference). The life cycle of Java objects: the new operator and constructor methods, accessing members and message passing, the Java garbage collector. Array objects.
  • Topic 4. Defining classes. Instance and class members. Writing constructor methods. Access levels: the public interface of a class. Namespaces: Java packages.
  • Topic 5. An introduction to UML class diagrams. Class associations and associative classes. Roles and navigation.
  • Topic 6. Inheritance: concept and types, method overriding. Class hierarchy: the Java Object class. Polymorphism: virtual methods. Modeling (generalization and specialization): abstract classes and methods.
  • Topic 7. The Java type system: Java interfaces. Generic programming in Java. The Java collections framework.
  • Topic 8. Exceptions: rising, handling and specification.
  • Topic 9. Persistence: binary and text streams. Object persistence: the Serializable interface. Access to remote resources: File and URL classes.
  • Topic 10. Event-driven programming: the Java event model. GUIs programming: containers, menus and basic controls.

4.4. Course planning and calendar

Further information concerning the timetable, classroom, office hours, assessment dates and other details regarding this course will be provided on the first day of class or please refer to the Faculty of Sciences website and Moodle.

4.5. Bibliography and recommended resources

http://psfunizar10.unizar.es/br13/egAsignaturas.php?codigo=27024


Curso Académico: 2022/23

453 - Graduado en Matemáticas

27024 - Informática II


Información del Plan Docente

Año académico:
2022/23
Asignatura:
27024 - Informática II
Centro académico:
100 - Facultad de Ciencias
Titulación:
453 - Graduado en Matemáticas
Créditos:
6.0
Curso:
4
Periodo de impartición:
Primer semestre
Clase de asignatura:
Optativa
Materia:
---

1. Información Básica

1.1. Objetivos de la asignatura

Esta asignatura de carácter optativo pretende avanzar en la formación en programación adquirida mediante la asignatura de formación básica Informática I, presentando técnicas de programación avanzada de aplicaciones. Concretamente, está concebida como una introducción a la programación orientada a objetos (POO), utilizando el lenguaje de programación Java y algunos elementos del lenguaje de diseño UML. Además de los fundamentos de la POO (clases, herencia y polimorfismo), el curso realiza también una breve introducción a la programación genérica y a la guiada por eventos.

Estos planteamientos y objetivos están alineados con los siguientes Objetivos de Desarrollo Sostenible (ODS) de la Agenda 2030 de Naciones Unidas (https://www.un.org/sustainabledevelopment/es/), de tal manera que la adquisición de los resultados de aprendizaje de la asignatura proporciona capacitación y competencia para contribuir en cierta medida a su logro: Objetivo 4: Educación de calidad; Objetivo 5: Igualdad de género; Objetivo 8: Trabajo decente y crecimiento económico; Objetivo 9: Industria, innovación e infraestructuras; Objetivo 10: Reducción de las desigualdades; Objetivo 17: Alianzas para lograr los objetivos.

1.2. Contexto y sentido de la asignatura en la titulación

Se trata de una asignatura optativa de la titulación, incluida en la materia Informática del módulo Fundamentos de Informática. Respecto a los itinerarios sugeridos en el grado, se encuentra en el bloque central del itinerario en Informática y Cálculo Científico y en el bloque fronterizo de los siguientes cuatro itinerarios: Álgebra, Geometría y Topología; Astrodinámica; Estadística; y Matemática Aplicada.

1.3. Recomendaciones para cursar la asignatura

Para cursar esta asignatura es recomendable haber superado la de Informática I. Para alcanzar los objetivos de aprendizaje es imprescindible asistir a todas las sesiones prácticas y resolver los problemas que en ellas se plantean. El aprendizaje de la programación de computadores es una tarea acumulativa, por lo que no es posible progresar adecuadamente sin haber afianzado los conceptos previos. Esto hace imprescindible el trabajo continuado desde el comienzo del curso, y el uso adecuado de las tutorías académicas.

2. Competencias y resultados de aprendizaje

2.1. Competencias

Al superar la asignatura, el estudiante será más competente para:

  • Desenvolverse en el manejo de los objetivos descritos en el apartado «Resultados de aprendizaje». Entre las competencias de la titulación que se desarrollan especialmente en esta asignatura se encuentran:
  • Tener la capacidad de reunir e interpretar datos relevantes, particularmente en el área de las matemáticas, para emitir juicios, usando la capacidad de análisis y abstracción, que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
  • Aprender nuevos conocimientos y técnicas de forma autónoma.
  • Proponer, analizar, validar e interpretar modelos de situaciones reales sencillas, utilizando las herramientas más adecuadas a los fines que se persigan.
  • Desarrollar algoritmos y programas que resuelvan problemas matemáticos, utilizando para cada caso el entorno computacional adecuado.

2.2. Resultados de aprendizaje

El estudiante, para superar esta asignatura, deberá demostrar los siguientes resultados:

  • Es capaz de abordar la solución de problemas aplicando el paradigma de la programación orientada a objetos.
  • Comprende y utiliza la herencia y el polimorfismo en el diseño de aplicaciones.
  • Comprende y utiliza los diagramas de clases en el desarrollo de aplicaciones.
  • Es capaz de desarrollar interfaces gráficas de usuario guiadas por eventos.
  • Conoce los fundamentos de la programación genérica y puede aplicarlos para el uso y, eventualmente, la construcción de tipos de datos.

2.3. Importancia de los resultados de aprendizaje

Proporcionan una formación de carácter optativo dentro del grado. Además de afianzar las técnicas de programación estructurada obtenidas en varias asignaturas, en particular la de Informática I, el paradigma orientado a objeto proporciona un grado de abstracción que facilita la resolución de problemas de mayor alcance.

3. Evaluación

3.1. Tipo de pruebas y su valor sobre la nota final y criterios de evaluación para cada prueba

El estudiante deberá demostrar que ha alcanzado los resultados de aprendizaje previstos mediante las siguientes actividades de evaluación:

  1. Resolución de cuatro problemas de programación y diseño, que serán similares a los realizados en las clases prácticas. Los problemas no entregados en el plazo previsto se calificarán con la nota 0. Esta actividad supone el 20% de la calificación final.
  2. Diseño y programación de una aplicación. Esta actividad supone el 20% de la calificación final.
  3. Examen final de la asignatura. Para superar esta prueba será necesario obtener una nota mínima de 3 sobre 10. La nota obtenida en este examen supone el 60% de la calificación final.

No obstante, conforme a la normativa de evaluación de la Universidad de Zaragoza, el estudiante podrá superar la asignatura mediante una prueba global única.

4. Metodología, actividades de aprendizaje, programa y recursos

4.1. Presentación metodológica general

El proceso de aprendizaje que se ha diseñado para esta asignatura se basa en lo siguiente:

  • Presentación de conceptos teóricos en clases magistrales.
  • Resolución de problemas, tanto individual como colaborativamente, en las prácticas con ordenador.

4.2. Actividades de aprendizaje

Presentación de los conceptos teóricos y tecnológicos en clases magistrales (2 horas/semana)

Resolución e implementación de problemas en sesiones tutorizadas de prácticas con ordenador (2 horas/semana)

Trabajo personal, en particular el relacionado con las pruebas (1) y (2) reseñadas en el apartado de Evaluación.

Las actividades docentes y de evaluación se llevarán a cabo de modo presencial salvo que, debido a la situación sanitaria, las disposiciones emitidas por las autoridades competentes y por la Universidad de Zaragoza dispongan realizarlas de forma telemática o semitelemática con aforos reducidos rotatorios.

4.3. Programa

  1. Introducción. El paradigma de programación orientado a objetos. La máquina virtual de Java: compilación y ejecución de programas. Desarrollo de programas en un IDE.
  2. Revisión de elementos de la programación estructurada en el lenguaje Java. Tipos primitivos; variables y constantes; operadores y expresiones; funciones matemáticas usuales: la clase Math. Sentencias elementales: asignación, lectura básica por teclado (la clase Scanner), escritura en pantalla. Composición secuencial, condicional e iterativa. Definición e invocación de métodos de clase. Sobrecarga de métodos. Recursión.
  3. Introducción a la programación orientada a objetos. Objetos, clases y variables referencia: la referencia null. El ciclo de vida de un objeto: creación, el operador new y los métodos constructores; uso, acceso a miembros y paso de mensajes; la destrucción de un objeto. Los objetos arrays de Java.
  4. Definición de una clase. Miembros de instancia y de clase. Definición de los métodos constructores. Niveles de acceso a miembros: la interfaz pública de una clase. Espacios de nombres: paquetes de clases.
  5. Introducción al diseño orientado a objetos. Diagramas de clases de UML. Asociaciones y clases asociativas. Roles y navegación.
  6. Herencia: concepto y tipos; la redefinición de métodos. Jerarquía de clases: la clase Object de Java. Polimorfismo: métodos virtuales. Generalización y especialización: clases y métodos abstractos.
  7. El sistema de tipos de Java: interfaces. Programación con genéricos en Java. Aplicación a la implementación de tipos de datos: las colecciones de Java.
  8. Gestión de errores en tiempo de ejecución. Excepciones: generación, tratamiento y notificación.
  9. Persistencia: entrada/salida de texto y binaria. Persistencia de objetos: la interface Serializable. Acceso a recursos remotos: las clases File y URL.
  10. Programación dirigida por eventos: el mecanismo de notificación-suscripción. Programación de interfaces gráficas de usuario: contenedores, menús y controles básicos.

4.4. Planificación de las actividades de aprendizaje y calendario de fechas clave

Calendario de sesiones presenciales y presentación de trabajos:

La información relativa al periodo de clases y fechas de exámenes está disponible en la web de la Facultad de Ciencias.

Las fechas de entrega aproximadas de las actividades de evaluación son:

  • Problemas de programación y diseño: semanas 5, 7, 9 y 11.
  • Diseño y programación de una aplicación: antes del examen.

No obstante, en la plataforma Moodle se publicarán con antelación suficiente las fechas concretas de entrega de estas pruebas.

4.5. Bibliografía y recursos recomendados

http://psfunizar10.unizar.es/br13/egAsignaturas.php?codigo=27024